Lambda Expressions কী এবং কিভাবে কাজ করে
Lambda Expressions হলো অ্যানোনিমাস ফাংশন (অর্থাৎ নামহীন ফাংশন) যা কোনো ফাংশনাল প্রোগ্রামিং কনটেক্সটে ব্যবহৃত হয়। কটলিনে lambda expressions কোডকে আরও সংক্ষিপ্ত এবং পাঠযোগ্য করে তোলে এবং ফাংশনাল প্রোগ্রামিং কনসেপ্টগুলোকে সাপোর্ট করে।
Lambda expressions-এর মাধ্যমে আপনি ফাংশনগুলোকে প্যারামিটার হিসেবে পাস করতে পারেন, যা কোডের পুনঃব্যবহারযোগ্যতা এবং ফ্লেক্সিবিলিটি বাড়ায়।
১. Lambda Expressions এর সিনট্যাক্স
কটলিনে lambda expression-এর সাধারণ সিনট্যাক্স হল:
val lambdaName: (ParameterType) -> ReturnType = { parameters -> body }
উদাহরণ:
val sum: (Int, Int) -> Int = { a, b -> a + b }
ব্যাখ্যা:
sumএকটি lambda expression যা দুইটিIntপ্যারামিটার গ্রহণ করে এবং তাদের যোগফল রিটার্ন করে।
২. Lambda Expressions কিভাবে কাজ করে
Lambda expressions-এর মাধ্যমে আপনি একটি ফাংশনকে সহজেই একটি ভ্যারিয়েবলে সংরক্ষণ করতে পারেন এবং তা পরে ফাংশন হিসেবে ব্যবহার করতে পারেন।
উদাহরণ:
fun main() {
val add: (Int, Int) -> Int = { a, b -> a + b }
println(add(5, 3)) // আউটপুট: 8
}
ব্যাখ্যা:
- এখানে
addlambda expression দুইটি সংখ্যা যোগ করার জন্য ব্যবহৃত হচ্ছে।
৩. Lambda Expressions কে একটি ফাংশনের প্যারামিটার হিসেবে ব্যবহার করা
Lambda expressions সাধারণত ফাংশনের প্যারামিটার হিসেবে ব্যবহৃত হয়। নিচের উদাহরণে operation ফাংশনে lambda expression প্যারামিটার হিসেবে ব্যবহার করা হয়েছে:
fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
fun main() {
val result = operateOnNumbers(10, 5) { x, y -> x + y }
println(result) // আউটপুট: 15
}
ব্যাখ্যা:
operateOnNumbersফাংশনটি দুটি সংখ্যা এবং একটি lambda expression গ্রহণ করছে, যা গণনা করার জন্য ব্যবহৃত হচ্ছে।
৪. Single Parameter Lambda Expressions
যদি lambda expression-এ একটি মাত্র প্যারামিটার থাকে, তবে আপনি it কীওয়ার্ড ব্যবহার করতে পারেন।
উদাহরণ:
val square: (Int) -> Int = { it * it }
println(square(4)) // আউটপুট: 16
ব্যাখ্যা:
- এখানে
itস্বয়ংক্রিয়ভাবে একমাত্র প্যারামিটার হিসাবে ব্যবহৃত হচ্ছে।
৫. Returning Multiple Values
Lambda expressions দিয়ে আপনি একটি কলব্যাক ফাংশন লিখতে পারেন যা একাধিক ভ্যালু রিটার্ন করতে পারে।
উদাহরণ:
val multipleValues: (Int) -> Pair<Int, Int> = { it to it * it }
val (num, square) = multipleValues(5)
println("Number: $num, Square: $square") // আউটপুট: Number: 5, Square: 25
ব্যাখ্যা:
- এখানে
multipleValueslambda expression একটিPairরিটার্ন করছে, যা একটি সংখ্যা এবং তার স্কোয়ার ধারণ করছে।
৬. Higher-order Functions
Lambda expressions কটলিনের higher-order functions-এর একটি গুরুত্বপূর্ণ অংশ। Higher-order functions হল এমন ফাংশন যা অন্য ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করে বা একটি ফাংশনকে রিটার্ন করে।
উদাহরণ:
fun filterEvenNumbers(numbers: List<Int>, predicate: (Int) -> Boolean): List<Int> {
return numbers.filter(predicate)
}
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evenNumbers = filterEvenNumbers(numbers) { it % 2 == 0 }
println(evenNumbers) // আউটপুট: [2, 4, 6]
}
ব্যাখ্যা:
- এখানে
filterEvenNumbersফাংশনটি একটি লিস্ট এবং একটি lambda expression গ্রহণ করছে, যা সংখ্যা ফিল্টার করতে ব্যবহৃত হচ্ছে।
উপসংহার
Lambda Expressions কটলিনে একটি শক্তিশালী ফিচার, যা ফাংশনাল প্রোগ্রামিং কনসেপ্টগুলোর বাস্তবায়ন সহজ করে। Lambda expressions আপনাকে কোডকে আরো সংক্ষিপ্ত, পরিষ্কার, এবং পুনঃব্যবহারযোগ্য করে তোলে।
Read more